home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir27 / calcltr.zip / CALC.FRM < prev   
Text File  |  1994-01-13  |  26KB  |  1,065 lines

  1. Version 1.00
  2. BEGIN Form frmCalc
  3.     AutoRedraw   = 0
  4.     BackColor    = QBColor(7)
  5.     BorderStyle  = 3
  6.     Caption      = "Hewlet Sanders"
  7.     ControlBox   = -1
  8.     Enabled      = -1
  9.     ForeColor    = QBColor(0)
  10.     Height       = Char(20)
  11.     Left         = Char(7)
  12.     MaxButton    = 0
  13.     MinButton    = -1
  14.     MousePointer = 5
  15.     Tag          = ""
  16.     Top          = Char(3)
  17.     Visible      = -1
  18.     Width        = Char(66)
  19.     WindowState  = 0
  20.     BEGIN CommandButton cmdPercent
  21.         BackColor    = QBColor(3)
  22.         Cancel       = 0
  23.         Caption      = "%"
  24.         Default      = 0
  25.         DragMode     = 0
  26.         Enabled      = -1
  27.         Height       = Char(3)
  28.         Left         = Char(23)
  29.         MousePointer = 0
  30.         TabIndex     = 11
  31.         TabStop      = 0
  32.         Tag          = ""
  33.         Top          = Char(14)
  34.         Visible      = -1
  35.         Width        = Char(5)
  36.     END
  37.     BEGIN CommandButton cmdOperator
  38.         BackColor    = QBColor(3)
  39.         Cancel       = 0
  40.         Caption      = "/"
  41.         Default      = 0
  42.         DragMode     = 0
  43.         Enabled      = -1
  44.         Height       = Char(3)
  45.         Index        = 3
  46.         Left         = Char(23)
  47.         MousePointer = 0
  48.         TabIndex     = 9
  49.         TabStop      = 0
  50.         Tag          = ""
  51.         Top          = Char(11)
  52.         Visible      = -1
  53.         Width        = Char(5)
  54.     END
  55.     BEGIN CommandButton cmdOperator
  56.         BackColor    = QBColor(3)
  57.         Cancel       = 0
  58.         Caption      = "-"
  59.         Default      = 0
  60.         DragMode     = 0
  61.         Enabled      = -1
  62.         Height       = Char(3)
  63.         Index        = 1
  64.         Left         = Char(23)
  65.         MousePointer = 0
  66.         TabIndex     = 7
  67.         TabStop      = 0
  68.         Tag          = ""
  69.         Top          = Char(8)
  70.         Visible      = -1
  71.         Width        = Char(5)
  72.     END
  73.     BEGIN CommandButton cmdOperator
  74.         BackColor    = QBColor(3)
  75.         Cancel       = 0
  76.         Caption      = "+"
  77.         Default      = 0
  78.         DragMode     = 0
  79.         Enabled      = -1
  80.         Height       = Char(3)
  81.         Index        = 0
  82.         Left         = Char(18)
  83.         MousePointer = 0
  84.         TabIndex     = 6
  85.         TabStop      = 0
  86.         Tag          = ""
  87.         Top          = Char(8)
  88.         Visible      = -1
  89.         Width        = Char(5)
  90.     END
  91.     BEGIN CommandButton cmdOperator
  92.         BackColor    = QBColor(3)
  93.         Cancel       = 0
  94.         Caption      = "*"
  95.         Default      = 0
  96.         DragMode     = 0
  97.         Enabled      = -1
  98.         Height       = Char(3)
  99.         Index        = 2
  100.         Left         = Char(18)
  101.         MousePointer = 0
  102.         TabIndex     = 8
  103.         TabStop      = 0
  104.         Tag          = ""
  105.         Top          = Char(11)
  106.         Visible      = -1
  107.         Width        = Char(5)
  108.     END
  109.     BEGIN CommandButton cmdOperator
  110.         BackColor    = QBColor(3)
  111.         Cancel       = 0
  112.         Caption      = "="
  113.         Default      = 0
  114.         DragMode     = 0
  115.         Enabled      = -1
  116.         Height       = Char(3)
  117.         Index        = 4
  118.         Left         = Char(18)
  119.         MousePointer = 0
  120.         TabIndex     = 10
  121.         TabStop      = 0
  122.         Tag          = ""
  123.         Top          = Char(14)
  124.         Visible      = -1
  125.         Width        = Char(5)
  126.     END
  127.     BEGIN CommandButton cmdCancelEntry
  128.         BackColor    = QBColor(3)
  129.         Cancel       = 0
  130.         Caption      = "&CE"
  131.         Default      = 0
  132.         DragMode     = 0
  133.         Enabled      = -1
  134.         Height       = Char(3)
  135.         Left         = Char(23)
  136.         MousePointer = 0
  137.         TabIndex     = 5
  138.         TabStop      = 0
  139.         Tag          = ""
  140.         Top          = Char(5)
  141.         Visible      = -1
  142.         Width        = Char(5)
  143.     END
  144.     BEGIN CommandButton cmdCancel
  145.         BackColor    = QBColor(3)
  146.         Cancel       = 0
  147.         Caption      = "C&LR"
  148.         Default      = 0
  149.         DragMode     = 0
  150.         Enabled      = -1
  151.         Height       = Char(3)
  152.         Left         = Char(18)
  153.         MousePointer = 0
  154.         TabIndex     = 4
  155.         TabStop      = 0
  156.         Tag          = ""
  157.         Top          = Char(5)
  158.         Visible      = -1
  159.         Width        = Char(5)
  160.     END
  161.     BEGIN CommandButton cmdNumber
  162.         BackColor    = QBColor(5)
  163.         Cancel       = 0
  164.         Caption      = "7"
  165.         Default      = 0
  166.         DragMode     = 0
  167.         Enabled      = -1
  168.         Height       = Char(3)
  169.         Index        = 7
  170.         Left         = Char(1)
  171.         MousePointer = 0
  172.         TabIndex     = 14
  173.         TabStop      = 0
  174.         Tag          = ""
  175.         Top          = Char(5)
  176.         Visible      = -1
  177.         Width        = Char(5)
  178.     END
  179.     BEGIN CommandButton cmdNumber
  180.         BackColor    = QBColor(5)
  181.         Cancel       = 0
  182.         Caption      = "8"
  183.         Default      = 0
  184.         DragMode     = 0
  185.         Enabled      = -1
  186.         Height       = Char(3)
  187.         Index        = 8
  188.         Left         = Char(6)
  189.         MousePointer = 0
  190.         TabIndex     = 13
  191.         TabStop      = 0
  192.         Tag          = ""
  193.         Top          = Char(5)
  194.         Visible      = -1
  195.         Width        = Char(5)
  196.     END
  197.     BEGIN CommandButton cmdNumber
  198.         BackColor    = QBColor(5)
  199.         Cancel       = 0
  200.         Caption      = "9"
  201.         Default      = 0
  202.         DragMode     = 0
  203.         Enabled      = -1
  204.         Height       = Char(3)
  205.         Index        = 9
  206.         Left         = Char(11)
  207.         MousePointer = 0
  208.         TabIndex     = 12
  209.         TabStop      = 0
  210.         Tag          = ""
  211.         Top          = Char(5)
  212.         Visible      = -1
  213.         Width        = Char(5)
  214.     END
  215.     BEGIN CommandButton cmdNumber
  216.         BackColor    = QBColor(5)
  217.         Cancel       = 0
  218.         Caption      = "6"
  219.         Default      = 0
  220.         DragMode     = 0
  221.         Enabled      = -1
  222.         Height       = Char(3)
  223.         Index        = 6
  224.         Left         = Char(11)
  225.         MousePointer = 0
  226.         TabIndex     = 15
  227.         TabStop      = 0
  228.         Tag          = ""
  229.         Top          = Char(8)
  230.         Visible      = -1
  231.         Width        = Char(5)
  232.     END
  233.     BEGIN CommandButton cmdNumber
  234.         BackColor    = QBColor(5)
  235.         Cancel       = 0
  236.         Caption      = "5"
  237.         Default      = 0
  238.         DragMode     = 0
  239.         Enabled      = -1
  240.         Height       = Char(3)
  241.         Index        = 5
  242.         Left         = Char(6)
  243.         MousePointer = 0
  244.         TabIndex     = 16
  245.         TabStop      = 0
  246.         Tag          = ""
  247.         Top          = Char(8)
  248.         Visible      = -1
  249.         Width        = Char(5)
  250.     END
  251.     BEGIN CommandButton cmdNumber
  252.         BackColor    = QBColor(5)
  253.         Cancel       = 0
  254.         Caption      = "4"
  255.         Default      = 0
  256.         DragMode     = 0
  257.         Enabled      = -1
  258.         Height       = Char(3)
  259.         Index        = 4
  260.         Left         = Char(1)
  261.         MousePointer = 0
  262.         TabIndex     = 17
  263.         TabStop      = 0
  264.         Tag          = ""
  265.         Top          = Char(8)
  266.         Visible      = -1
  267.         Width        = Char(5)
  268.     END
  269.     BEGIN CommandButton cmdNumber
  270.         BackColor    = QBColor(5)
  271.         Cancel       = 0
  272.         Caption      = "1"
  273.         Default      = 0
  274.         DragMode     = 0
  275.         Enabled      = -1
  276.         Height       = Char(3)
  277.         Index        = 1
  278.         Left         = Char(1)
  279.         MousePointer = 0
  280.         TabIndex     = 20
  281.         TabStop      = 0
  282.         Tag          = ""
  283.         Top          = Char(11)
  284.         Visible      = -1
  285.         Width        = Char(5)
  286.     END
  287.     BEGIN CommandButton cmdNumber
  288.         BackColor    = QBColor(5)
  289.         Cancel       = 0
  290.         Caption      = "2"
  291.         Default      = 0
  292.         DragMode     = 0
  293.         Enabled      = -1
  294.         Height       = Char(3)
  295.         Index        = 2
  296.         Left         = Char(6)
  297.         MousePointer = 0
  298.         TabIndex     = 19
  299.         TabStop      = 0
  300.         Tag          = ""
  301.         Top          = Char(11)
  302.         Visible      = -1
  303.         Width        = Char(5)
  304.     END
  305.     BEGIN CommandButton cmdNumber
  306.         BackColor    = QBColor(5)
  307.         Cancel       = 0
  308.         Caption      = "3"
  309.         Default      = 0
  310.         DragMode     = 0
  311.         Enabled      = -1
  312.         Height       = Char(3)
  313.         Index        = 3
  314.         Left         = Char(11)
  315.         MousePointer = 0
  316.         TabIndex     = 18
  317.         TabStop      = 0
  318.         Tag          = ""
  319.         Top          = Char(11)
  320.         Visible      = -1
  321.         Width        = Char(5)
  322.     END
  323.     BEGIN CommandButton cmdNumber
  324.         BackColor    = QBColor(5)
  325.         Cancel       = 0
  326.         Caption      = "0"
  327.         Default      = 0
  328.         DragMode     = 0
  329.         Enabled      = -1
  330.         Height       = Char(3)
  331.         Index        = 0
  332.         Left         = Char(1)
  333.         MousePointer = 0
  334.         TabIndex     = 2
  335.         TabStop      = 0
  336.         Tag          = ""
  337.         Top          = Char(14)
  338.         Visible      = -1
  339.         Width        = Char(10)
  340.     END
  341.     BEGIN CommandButton cmdDecimal
  342.         BackColor    = QBColor(5)
  343.         Cancel       = 0
  344.         Caption      = "."
  345.         Default      = 0
  346.         DragMode     = 0
  347.         Enabled      = -1
  348.         Height       = Char(3)
  349.         Left         = Char(11)
  350.         MousePointer = 0
  351.         TabIndex     = 3
  352.         TabStop      = 0
  353.         Tag          = ""
  354.         Top          = Char(14)
  355.         Visible      = -1
  356.         Width        = Char(5)
  357.     END
  358.     BEGIN CommandButton cmdInFt
  359.         BackColor    = QBColor(2)
  360.         Cancel       = 0
  361.         Caption      = "Inch->mm"
  362.         Default      = 0
  363.         DragMode     = 0
  364.         Enabled      = -1
  365.         Height       = Char(3)
  366.         Index        = 1
  367.         Left         = Char(43)
  368.         MousePointer = 0
  369.         TabIndex     = 30
  370.         TabStop      = -1
  371.         Tag          = ""
  372.         Top          = Char(8)
  373.         Visible      = -1
  374.         Width        = Char(12)
  375.     END
  376.     BEGIN CommandButton cmdInFt
  377.         BackColor    = QBColor(2)
  378.         Cancel       = 0
  379.         Caption      = "In-&>Ft"
  380.         Default      = 0
  381.         DragMode     = 0
  382.         Enabled      = -1
  383.         Height       = Char(3)
  384.         Index        = 0
  385.         Left         = Char(35)
  386.         MousePointer = 0
  387.         TabIndex     = 26
  388.         TabStop      = 0
  389.         Tag          = ""
  390.         Top          = Char(8)
  391.         Visible      = -1
  392.         Width        = Char(8)
  393.     END
  394.     BEGIN CommandButton cmdInFt
  395.         BackColor    = QBColor(6)
  396.         Cancel       = 0
  397.         Caption      = "COS&x"
  398.         Default      = 0
  399.         DragMode     = 0
  400.         Enabled      = -1
  401.         Height       = Char(3)
  402.         Index        = 2
  403.         Left         = Char(56)
  404.         MousePointer = 0
  405.         TabIndex     = 34
  406.         TabStop      = 0
  407.         Tag          = ""
  408.         Top          = Char(8)
  409.         Visible      = -1
  410.         Width        = Char(7)
  411.     END
  412.     BEGIN CommandButton cmdFtsq
  413.         BackColor    = QBColor(2)
  414.         Cancel       = 0
  415.         Caption      = "cm^2->Ft^2"
  416.         Default      = 0
  417.         DragMode     = 0
  418.         Enabled      = -1
  419.         Height       = Char(3)
  420.         Index        = 1
  421.         Left         = Char(43)
  422.         MousePointer = 0
  423.         TabIndex     = 31
  424.         TabStop      = -1
  425.         Tag          = ""
  426.         Top          = Char(11)
  427.         Visible      = -1
  428.         Width        = Char(12)
  429.     END
  430.     BEGIN CommandButton cmdFtsq
  431.         BackColor    = QBColor(2)
  432.         Cancel       = 0
  433.         Caption      = "->Ft^&2"
  434.         Default      = 0
  435.         DragMode     = 0
  436.         Enabled      = -1
  437.         Height       = Char(3)
  438.         Index        = 0
  439.         Left         = Char(35)
  440.         MousePointer = 0
  441.         TabIndex     = 27
  442.         TabStop      = 0
  443.         Tag          = ""
  444.         Top          = Char(11)
  445.         Visible      = -1
  446.         Width        = Char(8)
  447.     END
  448.     BEGIN CommandButton cmdFtsq
  449.         BackColor    = QBColor(6)
  450.         Cancel       = 0
  451.         Caption      = "T&AN"
  452.         Default      = 0
  453.         DragMode     = 0
  454.         Enabled      = -1
  455.         Height       = Char(3)
  456.         Index        = 2
  457.         Left         = Char(56)
  458.         MousePointer = 0
  459.         TabIndex     = 35
  460.         TabStop      = 0
  461.         Tag          = ""
  462.         Top          = Char(11)
  463.         Visible      = -1
  464.         Width        = Char(7)
  465.     END
  466.     BEGIN CommandButton cmdInSq
  467.         BackColor    = QBColor(2)
  468.         Cancel       = 0
  469.         Caption      = "Ft^2->cm^2"
  470.         Default      = 0
  471.         DragMode     = 0
  472.         Enabled      = -1
  473.         Height       = Char(3)
  474.         Index        = 1
  475.         Left         = Char(43)
  476.         MousePointer = 0
  477.         TabIndex     = 32
  478.         TabStop      = -1
  479.         Tag          = ""
  480.         Top          = Char(14)
  481.         Visible      = -1
  482.         Width        = Char(12)
  483.     END
  484.     BEGIN CommandButton cmdInSq
  485.         BackColor    = QBColor(6)
  486.         Cancel       = 0
  487.         Caption      = "IN&V"
  488.         Default      = 0
  489.         DragMode     = 0
  490.         Enabled      = -1
  491.         Height       = Char(3)
  492.         Index        = 2
  493.         Left         = Char(56)
  494.         MousePointer = 0
  495.         TabIndex     = 36
  496.         TabStop      = 0
  497.         Tag          = ""
  498.         Top          = Char(14)
  499.         Visible      = -1
  500.         Width        = Char(7)
  501.     END
  502.     BEGIN CommandButton cmdInSq
  503.         BackColor    = QBColor(2)
  504.         Cancel       = 0
  505.         Caption      = "&=>In^2"
  506.         Default      = 0
  507.         DragMode     = 0
  508.         Enabled      = -1
  509.         Height       = Char(3)
  510.         Index        = 0
  511.         Left         = Char(35)
  512.         MousePointer = 0
  513.         TabIndex     = 28
  514.         TabStop      = 0
  515.         Tag          = ""
  516.         Top          = Char(14)
  517.         Visible      = -1
  518.         Width        = Char(8)
  519.     END
  520.     BEGIN CommandButton cmdFtIn
  521.         BackColor    = QBColor(2)
  522.         Cancel       = 0
  523.         Caption      = "mm->Inch"
  524.         Default      = 0
  525.         DragMode     = 0
  526.         Enabled      = -1
  527.         Height       = Char(3)
  528.         Index        = 1
  529.         Left         = Char(43)
  530.         MousePointer = 0
  531.         TabIndex     = 29
  532.         TabStop      = -1
  533.         Tag          = ""
  534.         Top          = Char(5)
  535.         Visible      = -1
  536.         Width        = Char(12)
  537.     END
  538.     BEGIN CommandButton cmdFtIn
  539.         BackColor    = QBColor(6)
  540.         Cancel       = 0
  541.         Caption      = "SI&N"
  542.         Default      = 0
  543.         DragMode     = 0
  544.         Enabled      = -1
  545.         Height       = Char(3)
  546.         Index        = 2
  547.         Left         = Char(56)
  548.         MousePointer = 0
  549.         TabIndex     = 33
  550.         TabStop      = 0
  551.         Tag          = ""
  552.         Top          = Char(5)
  553.         Visible      = -1
  554.         Width        = Char(7)
  555.     END
  556.     BEGIN CommandButton cmdFtIn
  557.         BackColor    = QBColor(2)
  558.         Cancel       = 0
  559.         Caption      = "Ft->&In"
  560.         Default      = 0
  561.         DragMode     = 0
  562.         Enabled      = -1
  563.         Height       = Char(3)
  564.         Index        = 0
  565.         Left         = Char(35)
  566.         MousePointer = 0
  567.         TabIndex     = 25
  568.         TabStop      = 0
  569.         Tag          = ""
  570.         Top          = Char(5)
  571.         Visible      = -1
  572.         Width        = Char(8)
  573.     END
  574.     BEGIN CommandButton cmdSqrt
  575.         BackColor    = QBColor(4)
  576.         Cancel       = 0
  577.         Caption      = "&SQR"
  578.         Default      = 0
  579.         DragMode     = 0
  580.         Enabled      = -1
  581.         Height       = Char(3)
  582.         Left         = Char(29)
  583.         MousePointer = 0
  584.         TabIndex     = 21
  585.         TabStop      = 0
  586.         Tag          = ""
  587.         Top          = Char(14)
  588.         Visible      = -1
  589.         Width        = Char(5)
  590.     END
  591.     BEGIN CommandButton cmdMEM
  592.         BackColor    = QBColor(9)
  593.         Cancel       = 0
  594.         Caption      = "M&EM"
  595.         Default      = 0
  596.         DragMode     = 0
  597.         Enabled      = -1
  598.         Height       = Char(3)
  599.         Left         = Char(29)
  600.         MousePointer = 0
  601.         TabIndex     = 23
  602.         TabStop      = 0
  603.         Tag          = ""
  604.         Top          = Char(8)
  605.         Visible      = -1
  606.         Width        = Char(5)
  607.     END
  608.     BEGIN Label lblReadout
  609.         Alignment    = 1
  610.         AutoSize     = 0
  611.         BackColor    = QBColor(8)
  612.         BorderStyle  = 1
  613.         Caption      = ""
  614.         DragMode     = 0
  615.         Enabled      = -1
  616.         ForeColor    = QBColor(14)
  617.         Height       = Char(3)
  618.         Left         = Char(1)
  619.         MousePointer = 0
  620.         TabIndex     = 1
  621.         Tag          = ""
  622.         Top          = Char(1)
  623.         Visible      = -1
  624.         Width        = Char(27)
  625.     END
  626.     BEGIN CommandButton cmdPower
  627.         BackColor    = QBColor(4)
  628.         Cancel       = 0
  629.         Caption      = "X^&y"
  630.         Default      = 0
  631.         DragMode     = 0
  632.         Enabled      = -1
  633.         Height       = Char(3)
  634.         Left         = Char(29)
  635.         MousePointer = 0
  636.         TabIndex     = 22
  637.         TabStop      = 0
  638.         Tag          = ""
  639.         Top          = Char(11)
  640.         Visible      = -1
  641.         Width        = Char(5)
  642.     END
  643.     BEGIN CommandButton cmdRECALL
  644.         BackColor    = QBColor(9)
  645.         Cancel       = 0
  646.         Caption      = "&RCL"
  647.         Default      = 0
  648.         DragMode     = 0
  649.         Enabled      = -1
  650.         Height       = Char(3)
  651.         Left         = Char(29)
  652.         MousePointer = 0
  653.         TabIndex     = 24
  654.         TabStop      = 0
  655.         Tag          = ""
  656.         Top          = Char(5)
  657.         Visible      = -1
  658.         Width        = Char(5)
  659.     END
  660.     BEGIN PictureBox pctKeyTrap
  661.         AutoRedraw   = 0
  662.         BackColor    = QBColor(7)
  663.         BorderStyle  = 1
  664.         DragMode     = 0
  665.         Enabled      = -1
  666.         ForeColor    = QBColor(0)
  667.         Height       = Char(2)
  668.         Left         = Char(2)
  669.         MousePointer = 0
  670.         TabIndex     = 0
  671.         TabStop      = -1
  672.         Tag          = ""
  673.         Top          = Char(18)
  674.         Visible      = -1
  675.         Width        = Char(23)
  676.     END
  677.     BEGIN Label lblMem
  678.         Alignment    = 0
  679.         AutoSize     = -1
  680.         BackColor    = QBColor(9)
  681.         BorderStyle  = 0
  682.         Caption      = "Mem->"
  683.         DragMode     = 0
  684.         Enabled      = -1
  685.         ForeColor    = QBColor(0)
  686.         Height       = Char(1)
  687.         Left         = Char(29)
  688.         MousePointer = 0
  689.         TabIndex     = 37
  690.         Tag          = ""
  691.         Top          = Char(2)
  692.         Visible      = -1
  693.         Width        = Char(5)
  694.     END
  695. END
  696. DECLARE FUNCTION gettemp$ ()
  697. DECLARE SUB display (b!)
  698. DECLARE SUB cmdMEM_click ()
  699. DECLARE SUB cmdRECALL_click ()
  700. DECLARE SUB cmdSQRT_Click ()
  701. DECLARE SUB cmdPOWER_Click ()
  702.         ' ------------------------------------------------------------------------
  703. ' Visual Basic for MS-DOS Calculator Program
  704. '
  705. ' Calculator program that supports mouse and keyboard
  706. ' input.
  707. '
  708. ' Copyright (C) 1982-1992 Microsoft Corporation
  709. '
  710. ' You have a royalty-free right to use, modify, reproduce
  711. ' and distribute the sample applications and toolkits provided with
  712. ' Visual Basic for MS-DOS (and/or any modified version)
  713. ' in any way you find useful, provided that you agree that
  714. ' Microsoft has no warranty, obligations or liability for
  715. ' any of the sample applications or toolkits.
  716. ' ------------------------------------------------------------------------
  717.  
  718. ' Include file containing declarations for called procedures
  719. '$INCLUDE: 'calc.bi'
  720. '$INCLUDE: 'NEWPLUS.BAS'
  721.  
  722. 'CONST FALSE = 0
  723. 'CONST TRUE = NOT FALSE
  724.  
  725. DIM SHARED op1 AS DOUBLE           ' Previously input operand.
  726. DIM SHARED op2 AS DOUBLE           ' Second operand.
  727. DIM SHARED DecimalFlag AS INTEGER  ' Decimal point present yet?
  728. DIM SHARED numops AS INTEGER       ' Number of operands.
  729. DIM SHARED LASTINPUT AS STRING     ' Indicate type of last keypress.
  730. DIM SHARED OPFLAG AS STRING        ' Indicate pending operation.
  731. DIM SHARED Decimal AS STRING       ' Decimal indicator (country specific).
  732. DIM SHARED mem AS DOUBLE
  733.  
  734. ' Click event procedure for Cancel Entry (CE) key.
  735. '
  736. SUB cmdCancelEntry_Click ()
  737.     DecimalFlag = FALSE                 ' Decimal point here does not indicate fraction.
  738.     LASTINPUT = "CE"                    ' Track what user did last.
  739.     CALL display(0)
  740. END SUB
  741.  
  742. ' Click event procedure for Cancel (C) key.
  743. ' Reset the display and initializes variables.
  744. '
  745. SUB cmdCancel_Click ()
  746.     lblreadout.Caption = "0"
  747.     lblMem.Caption = "MEM->"
  748.     DecimalFlag = FALSE
  749.     numops = 0
  750.     op1 = 0
  751.     op2 = 0
  752.     LASTINPUT = "NONE"
  753.     OPFLAG = ""
  754.     pctKeyTrap.SETFOCUS
  755. END SUB
  756.  
  757. ' Click event procedure for Decimal key.
  758. ' If last keypress was an operator, initialize
  759. ' readout. Otherwise, append a decimal
  760. ' point to the display.
  761. '
  762. SUB cmdDecimal_Click ()
  763.     IF LASTINPUT <> "NUMS" THEN
  764.         lblreadout.Caption = "0" + Decimal
  765.     ELSEIF DecimalFlag = FALSE THEN
  766.         lblreadout.Caption = lblreadout.Caption + Decimal
  767.     END IF
  768.     DecimalFlag = TRUE              ' Decimal point here does indicate fraction.
  769.     LASTINPUT = "NUMS"
  770.     pctKeyTrap.SETFOCUS
  771. END SUB
  772.  
  773. SUB cmdFtIn_Click (index AS INTEGER)
  774.     temp$ = gettemp$()
  775. LASTINPUT = ""
  776. IF index = 0 THEN
  777.     a = 12 * (VAL(temp$))
  778. ELSEIF index = 1 THEN
  779.     a = (VAL(temp$)) / 25.4
  780. ELSE ' index = 2 THEN '    CASE 2
  781.         numops = 1
  782.         a = VAL(temp$)
  783.         IF LASTINPUT = "INVERSE" THEN
  784.             'lastinput = "NUMS"
  785.             LASTINPUT = ""
  786.             IF a > 1 THEN
  787.                 BEEP: pctKeyTrap.SETFOCUS : EXIT SUB
  788.             ELSEIF a = 1 THEN
  789.                 a = 90
  790.             ELSE
  791.                 a = (a / SQR(1 - a * a))
  792.                 a = ATN(a)
  793.                 a = a * 180 / (4 * ATN(1))
  794.             END IF
  795.         ELSE
  796.             a = SIN(a * 4 * ATN(1) / 180)
  797.             LASTINPUT = ""
  798.         END IF
  799. END IF
  800.  
  801.         CALL display(a)
  802.  
  803.         
  804. END SUB
  805.  
  806. SUB cmdFtsq_Click (index AS INTEGER)
  807.     temp$ = gettemp$()
  808.  
  809. IF index = 0 THEN
  810.     a = VAL(temp$) / 144
  811. ELSEIF index = 1 THEN '    CASE 1
  812.     a = VAL(temp$) / 929.0304
  813. ELSE
  814.     numops = 1
  815.     IF LASTINPUT = "INVERSE" THEN
  816.     '    lastinput = "NUMS"
  817.  
  818.         a = ATN(VAL(temp$)) * 180 / (4 * ATN(1))
  819.     ELSE
  820.         IF temp$ <> "90" THEN
  821.             a = TAN(VAL(temp$) * 4 * ATN(1) / 180)
  822.         ELSE
  823.             lblreadout.Caption = "UNDEFINED" ': pctKeyTrap.SETFOCUS : EXIT SUB
  824.         END IF
  825.     END IF
  826.             LASTINPUT = ""
  827. END IF
  828.  
  829.     CALL display(a)
  830.     
  831. END SUB
  832.  
  833. SUB cmdInFt_Click (index AS INTEGER)
  834.     temp$ = gettemp$()
  835.  
  836. IF index = 0 THEN '    CASE 0
  837.         a = VAL(temp$) / 12
  838. ELSEIF index = 1 THEN '    CASE 1
  839.         a = VAL(temp$) * 25.4
  840. ELSE ' THEN '    CASE 2
  841.         numops = 1
  842.         a = VAL(temp$)
  843.         IF LASTINPUT = "INVERSE" THEN
  844.             'lastinput = "NUMS"
  845.       
  846.             IF a > 1 THEN
  847.                 BEEP: pctKeyTrap.SETFOCUS : EXIT SUB
  848.             ELSEIF a = 1 THEN
  849.                 a = 0
  850.             ELSE
  851.             a = -ATN(a / SQR(1 - a * a)) + ATN(1) * 2
  852.             a = a * 180 / (4 * ATN(1))
  853.          END IF
  854.         ELSE
  855.             a = COS(a * 4 * ATN(1) / 180)
  856.        END IF
  857.       LASTINPUT = ""
  858. END IF
  859.     
  860.     CALL display(a)
  861.  
  862. END SUB
  863.  
  864. SUB cmdInSq_Click (index AS INTEGER)
  865.     temp$ = gettemp$()
  866.  
  867. IF index = 0 THEN '    CASE 0
  868.        a = VAL(temp$) * 144
  869. '        lastinput = "INSQ"
  870.         CALL display(a)
  871. ELSEIF index = 1 THEN '    CASE 1
  872.         a = VAL(temp$) * 929.0304
  873. '        lastinput = "METRIC"
  874.         CALL display(a)
  875. ELSE
  876.         LASTINPUT = "INVERSE"
  877.         pctKeyTrap.SETFOCUS
  878. END IF
  879. 'lastinput = "NUMS"
  880. END SUB
  881.  
  882. SUB cmdMEM_click ()
  883. mem = VAL(lblreadout.Caption)
  884. lblMem.Caption = "MEM ->" + lblreadout.Caption
  885. pctKeyTrap.SETFOCUS
  886. LASTINPUT = "NONE"
  887. Clipboard.SETTEXT lblreadout.Caption
  888. END SUB
  889.  
  890. SUB cmdNumber_Click (Indx AS INTEGER)
  891.        
  892.     IF LASTINPUT <> "NUMS" THEN
  893.         lblreadout.Caption = ""
  894.         DecimalFlag = FALSE
  895.     END IF
  896.     
  897.     IF Indx = -3 THEN
  898.         lblreadout.Caption = lblreadout.Caption + "-"
  899.     ELSE
  900.         tempcolor = cmdNumber(Indx).backcolor
  901.         cmdNumber(Indx).backcolor = 0
  902.         lblreadout.Caption = lblreadout.Caption + cmdNumber(Indx).Caption
  903.         cmdNumber(Indx).backcolor = tempcolor
  904.     END IF
  905.     LASTINPUT = "NUMS"
  906.     pctKeyTrap.SETFOCUS
  907. END SUB
  908.  
  909. ' Click event procedure for operator (+, -, x, /, =) keys.
  910. ' If the immediately preceeding keypress was part of a
  911. ' number, increment NumOps. If one operand is present,
  912. ' set Op1. If two are present, set Op1 equal to the
  913. ' result of the operation on Op1 and the current
  914. ' input string, and display the result.
  915. '
  916. SUB cmdOperator_Click (Indx AS INTEGER)
  917.   ON LOCAL ERROR GOTO overflw
  918.     IF LASTINPUT = "NUMS" THEN
  919.         numops = numops + 1
  920.     END IF
  921.     temp$ = lblreadout.Caption
  922.     IF numops = 1 THEN
  923.         op1 = VAL(temp$)
  924.     ELSEIF numops = 2 THEN
  925.         op2 = VAL(temp$)
  926.         SELECT CASE OPFLAG
  927.             CASE "+": op1 = op1 + op2
  928.             CASE "-": op1 = op1 - op2
  929.             CASE "*": op1 = op1 * op2
  930.             CASE "%": op1 = op1 * op2 / 100
  931.             CASE "^": op1 = op1 ^ op2
  932.                 
  933.             CASE "/":
  934.                 IF op2 = 0 THEN
  935.                     MSGBOX "Can't divide by zero", 0, "Calculator"
  936.                 ELSE
  937.                     op1 = op1 / op2
  938.                 END IF
  939.             CASE "=": op1 = op2
  940.         END SELECT
  941.  
  942.         temp$ = LTRIM$(STR$(op1))
  943.         lblreadout.Caption = temp$
  944.         numops = 1
  945.     END IF
  946.  
  947.     LASTINPUT = "OPS"
  948.     OPFLAG = cmdOperator(Indx).Caption
  949.     pctKeyTrap.SETFOCUS
  950.     EXIT SUB
  951.  
  952. overflw:
  953.     MSGBOX "An overflow error has occured.  The resulting number is too large."
  954.     
  955.     CALL cmdCancel_Click
  956.    
  957.     EXIT SUB
  958.     'RESUME NEXT
  959.  
  960. END SUB
  961.  
  962. ' Click event procedure for percent (%) key.
  963. ' Compute and display a percentage of the first operand.
  964. '
  965. SUB cmdPercent_Click ()
  966.     numops = 1
  967.     OPFLAG = "%"
  968.     op1 = VAL(lblreadout.Caption)
  969.     LASTINPUT = "PERCENT"
  970.     pctKeyTrap.SETFOCUS
  971. END SUB
  972.  
  973. SUB cmdPOWER_Click ()
  974.     numops = 1
  975.     OPFLAG = "^"
  976.     op1 = VAL(lblreadout.Caption)
  977.     LASTINPUT = "POWER"
  978.     pctKeyTrap.SETFOCUS
  979. END SUB
  980.  
  981. SUB cmdRECALL_click ()
  982.  
  983.     
  984. lblreadout.Caption = LTRIM$(STR$(mem))
  985. pctKeyTrap.SETFOCUS
  986. LASTINPUT = "NUMS"
  987. END SUB
  988.  
  989. SUB cmdSQRT_Click ()
  990.     temp$ = gettemp$()
  991.     IF VAL(temp$) < 0 THEN
  992.         BEEP
  993.             pctKeyTrap.SETFOCUS
  994.     ELSE
  995.         
  996.         a = SQR(VAL(temp$))
  997.         CALL display(a)
  998.     END IF
  999. END SUB
  1000.  
  1001. SUB display (b)
  1002. temp$ = LTRIM$(STR$(b))
  1003. IF temp$ <> "0" THEN temp$ = FORMAT$(b, "############.###########")
  1004. lblreadout.Caption = temp$
  1005. pctKeyTrap.SETFOCUS
  1006. END SUB
  1007.  
  1008. SUB Form_Load ()
  1009.     DecimalFlag = FALSE
  1010.     numops = 0
  1011.     LASTINPUT = "NONE"
  1012.     OPFLAG = ""
  1013.         Decimal = "."
  1014.     top = (screen.height - height) \ 2
  1015.     left = (screen.Width - Width) \ 2
  1016.  
  1017. END SUB
  1018.  
  1019. FUNCTION gettemp$ ()
  1020.     temp$ = lblreadout.Caption
  1021.     IF Decimal = "," AND INSTR(temp$, ",") THEN MID$(temp$, INSTR(temp$, ","), 1) = "."
  1022.  gettemp = temp$
  1023. END FUNCTION
  1024.  
  1025. ' KeyPress event procedure for KeyTrap picture box.
  1026. ' The hidden KeyTrap control acts as the central keyboard
  1027. ' handler. It processes keyboard input and invokes appropriate
  1028. ' Event Procedure.  Focus is always returned to the
  1029. ' KeyTrap picture box at the end of each click event
  1030. ' for the command buttons.
  1031. '
  1032. SUB pctKeyTrap_KeyPress (KeyAscii AS INTEGER)
  1033.     SELECT CASE KeyAscii
  1034.        CASE 48 TO 57:                                '0-9
  1035.            CALL cmdNumber_Click(KeyAscii - 48)
  1036.        
  1037.        CASE 8, 127:                                      'Cancel Entry (CE)
  1038.            CALL cmdCancelEntry_Click
  1039.        CASE 13:                                      'Enter is same as Equal (=)
  1040.            CALL cmdOperator_Click(4)
  1041.        CASE 27:                                      'Cancel All (C)
  1042.            CALL cmdCancel_Click
  1043.        CASE 37:                                      'Percent (%)
  1044.            CALL cmdPercent_Click
  1045.        CASE 42:                                      'Multiply (*)
  1046.            CALL cmdOperator_Click(2)
  1047.        CASE 43:                                      'Add (+)
  1048.            CALL cmdOperator_Click(0)
  1049.        CASE 45:                                      'Subtract (-)
  1050.            IF (numops > 0 OR LASTINPUT = "NONE") AND OPFLAG <> "=" THEN
  1051.                 CALL cmdNumber_Click(KeyAscii - 48)
  1052.            ELSE
  1053.                 CALL cmdOperator_Click(1)
  1054.            END IF
  1055.        CASE 46', 46:                                  'Decimal (.) or Comma (,)
  1056.            CALL cmdDecimal_Click
  1057.        CASE 47:                                      'Divide (/)
  1058.            CALL cmdOperator_Click(3)
  1059.        CASE 61:                                      'Equal (=)
  1060.            CALL cmdOperator_Click(4)
  1061.        CASE ELSE: BEEP                               'Reject all others
  1062.     END SELECT
  1063. END SUB
  1064.  
  1065.